#include "register/tilingdata_base.h"


namespace optiling {
  //广播参数
  BEGIN_TILING_DATA_DEF(BroadCastTiling)
  TILING_DATA_FIELD_DEF(int32_t, y_dimNum);
  TILING_DATA_FIELD_DEF_ARR(int32_t,20,y_dims);
  TILING_DATA_FIELD_DEF_ARR(int32_t,20,condition_dims);
  TILING_DATA_FIELD_DEF_ARR(int32_t,20,x1_dims);
  TILING_DATA_FIELD_DEF_ARR(int32_t,20,x2_dims);
  TILING_DATA_FIELD_DEF_ARR(int32_t,20,y_sumDims);
  TILING_DATA_FIELD_DEF_ARR(int32_t,20,condition_sumDims);
  TILING_DATA_FIELD_DEF_ARR(int32_t,20,x1_sumDims);
  TILING_DATA_FIELD_DEF_ARR(int32_t,20,x2_sumDims);
  END_TILING_DATA_DEF;
  REGISTER_TILING_DATA_CLASS(BroadCastTilingOp, BroadCastTiling)

  BEGIN_TILING_DATA_DEF(SelectV2TilingData)
    TILING_DATA_FIELD_DEF(uint32_t, size);
    TILING_DATA_FIELD_DEF(uint8_t, tilingKey);
    TILING_DATA_FIELD_DEF(uint32_t, smallCoreDataNum); //小核处理的总数据量大小
    TILING_DATA_FIELD_DEF(uint32_t, finalSmallTileNum);//小核上数据搬运次数
    TILING_DATA_FIELD_DEF(uint32_t, tileDataNum);   //单核单次搬运处理的数据量大小
    TILING_DATA_FIELD_DEF(uint32_t, smallTailDataNum); //小核最后一次搬运处理的数据量大小
    TILING_DATA_FIELD_DEF(uint32_t, tailBlockNum);  //大核的个数
    TILING_DATA_FIELD_DEF_STRUCT(BroadCastTiling, BCT);  //内嵌广播参数
END_TILING_DATA_DEF;

REGISTER_TILING_DATA_CLASS(SelectV2, SelectV2TilingData)
}
